P0 Snake
Platform: Commodore 64
Gametype: Undefined
_________________________

Copyright:
Antonio Savona 2015 
Compatibility:
PAL/NTSC C64/128/GS 

Wind your way through 30 levels of arcade-action insanity in this specially enhanced version of the game that took the trophy in the 2014 RGCD 16KB Game Development Competition. Featuring eight additional screens, an all-new intro sequence, improved sound samples, a password save system, bug fixes and other minor tweaks, RGCD is proud to present this final version of Antonio Savona's P0 SNAKE! 

P0 SNAKE is a super simple game to play - it requires just one button! 

Holding down the fire button rotates the snake counter-clockwise, whereas releasing the button rotates the snake clockwise. Alternating these two basic movements allows the snake to be steered around the screen. As you eat the dots (by passing over them), your snake will grow in length - but be careful not to crash into your own tail! 

There is also a wide variety of enemies, obstacles and movement-altering terrains to discover, avoid and master. Luckily, the head is the only vulnerable part of the snake - and you'll need to use this to your advantage!

The standard cartridge version is packaged in a cardboard carton, whereas the deluxe version uses a modified plastic Universal Game Case, and this initial run is limited to 50 individually numbered copies (further batches will only be produced if there is sufficient demand). 

The cover art features an illustration by Steve 'STE 86' Day and the deluxe version of the game comes complete with a printed manual, an A3 170gsm matt poster, two code sheets and three vinyl stickers (the standard version does not include the poster or code sheets). The 64KB PCB is housed in a clear cartridge shell illuminated internally by a colour-changing rainbow LED. The full game is also available for FREE download from our itch.io page.

---

Some words from the author, Antonio Savona

I've been a Commodore 64 owner since 1986, as I inherited it from my brother, who had just become an Amiga early adopter. Together with the HW, I also got a brief introduction to Basic and a couple of books he had studied, one of which was the seminal "programming the 6502" by Rodnay Zaks. That, a reset button he had created for me and a lot of time spent disassembling intros and games got me started with assembler. After quite some time spent shifting bits and moving sprites around, I managed to get my own intros up and running. I never really thought of joining a group, as the local community was quite active and gave me all the feedback I needed, but at some point (as every teenager in the 80s) I thought I would code a game.

I got in touch with the few Italian software houses I knew of and I sent them my intros. A couple of them got back in touch. They said they liked the intros and they would have been happy to publish my game, but they needed something more than few words of good will. So I put together a design document for a vertical shot 'em up and I started to implement it. The game (temporary?) name was Blockzone. It was supposed to be a classic vertical shot 'em up with powerups but with a novel aspect: physics. The ship would accelerate and brake in a natural way and it would bounce against obstacles at different angles, requiring the player to approach the game in a more subtle way than just "run as fast as you can and shoot everything that moves". In fact, even shooting caused recoil. There would have been 3 different ships to choose from, with different acceleration, mass and shields.

Few months later I had something working: a decent approximation of the physics model I had in mind, the ship moving through an empty level, though with some template graphics, a nice parallax scrolling star field and the controls in place. I also had few sound effects and an NMI digi player in place, as I wanted the game to have speech (although, not having a sound sampler yet, it played samples stolen from Mega Apocalypse). All in all, I think that I had a good 25% of the game in place, and that felt already like an achievement to me.

That was as far as I got though: I was 16 when I started to develop Blockzone and I probably lacked the discipline and the drive to commit to such a huge task. Even more importantly, I lacked the proper tools and, as the project advanced, I started to feel the limitations of my programming environment: everything was coded with a monitor, not even an assembler, as that would have taken too much space in memory. I started doing other things with my life, I found other interests and I gradually walked away from Blockzone development, as well as C64 programming.

I finished my studies and I started a career in IT. At some point, I eventually managed to work in game programming and I saw some games published for the Game Boy Advance by Activision (Spiderman 2), Atari (Driv3r, Totally Spies), and Disney Interactive (Kim Possible 2, Kim Possible 3 and few more). The difference with the C64 times was huge: we were large teams, with a structure and deadlines. I only had to take care of a single aspect of the game. Most importantly, there was the Internet: every question had already been answered somewhere, and that answer was few clicks away. Quite a change from the teenager in the bedroom messing around with his Action Replay, few books and a lot of question marks.

Fast forward to 2013 and I'm visiting my parent's house in Italy. As I clean a drawer I find few disks labelled "Blockzone". I put together a C64 and I try to load them up, but it's just a bunch of meaninglessly named files and I don't even know what is data and what is code. I could run some small parts, but they would crash because of other parts missing, or some self-modifying code portions not being properly initialized. It was a total mess which must have been perfectly clear to my 16 year old self. Not to me.

I took the disks to London, where I live now, and after few more unsuccessful attempts at understanding what was what, I decided to buy a 1541U-II to dump the files. Having the possibility to run things inside an emulator sped up my research considerably and I finally tracked down the right combination of files to load at the same time, the proper initialization code and the right setup: Exactly 24 years after, Blockzone was running again!

That small research had opened my eyes on the scene: I realized that the C64 community is living a second youth, that new developers are starting to develop for the C64 and more and more of the old ones are coming back. I was hooked!

I decided that I wanted to finish Blockzone. After all those years though, even with the modern cross-development tools, I still considered the project quite challenging. Even more so not having touched 6510 assembler in so many years, and with time being a now limited resource. So I decided to try to work on something more simple to regain confidence with assembler. I came up with this P0-Snake idea, and I decided to participate to the RGCD 16k coding competition to make my commitment somehow more official with a deadline.


http://www.rgcd.co.uk/2014/12/rgcd-c64-cartridge-development.html#more
http://www.hit8b.it/un8bg18.html
